package com.joolun.mall.service.impl;

import java.util.List;
import com.joolun.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import com.joolun.common.utils.StringUtils;
import org.springframework.transaction.annotation.Transactional;
import com.joolun.mall.domain.ArticleCategory;
import com.joolun.mall.mapper.ArticleMapper;
import com.joolun.mall.domain.Article;
import com.joolun.mall.service.IArticleService;

/**
 * 文章管理Service业务层处理
 * 
 * @author www.joolun.com
 * @date 2021-10-18
 */
@Service
public class ArticleServiceImpl implements IArticleService 
{
    @Autowired
    private ArticleMapper articleMapper;

    /**
     * 查询文章管理
     * 
     * @param id 文章管理ID
     * @return 文章管理
     */
    @Override
    public Article selectArticleById(String id)
    {
        return articleMapper.selectArticleById(id);
    }

    /**
     * 查询文章管理列表
     * 
     * @param article 文章管理
     * @return 文章管理
     */
    @Override
    public List<Article> selectArticleList(Article article)
    {
        return articleMapper.selectArticleList(article);
    }

    /**
     * 新增文章管理
     * 
     * @param article 文章管理
     * @return 结果
     */
    @Transactional
    @Override
    public int insertArticle(Article article)
    {
        article.setCreateTime(DateUtils.getNowDate());
        int rows = articleMapper.insertArticle(article);
//        insertArticleCategory(article);
        return rows;
    }

    /**
     * 修改文章管理
     * 
     * @param article 文章管理
     * @return 结果
     */
    @Transactional
    @Override
    public int updateArticle(Article article)
    {
        article.setUpdateTime(DateUtils.getNowDate());
//        articleMapper.deleteArticleCategoryById(article.getId());
//        insertArticleCategory(article);
        return articleMapper.updateArticle(article);
    }

    /**
     * 批量删除文章管理
     * 
     * @param ids 需要删除的文章管理ID
     * @return 结果
     */
    @Transactional
    @Override
    public int deleteArticleByIds(String[] ids)
    {
        articleMapper.deleteArticleCategoryByIds(ids);
        return articleMapper.deleteArticleByIds(ids);
    }

    /**
     * 删除文章管理信息
     * 
     * @param id 文章管理ID
     * @return 结果
     */
    @Override
    public int deleteArticleById(String id)
    {
        articleMapper.deleteArticleCategoryById(id);
        return articleMapper.deleteArticleById(id);
    }

    /**
     * 新增文章分类信息
     * 
     * @param article 文章管理对象
     */
    public void insertArticleCategory(Article article)
    {
        ArticleCategory articleCategoryList = article.getArticleCategoryList();
        String id = article.getId();
        if (StringUtils.isNotNull(articleCategoryList))
        {
//            List<ArticleCategory> list = new ArrayList<ArticleCategory>();
//            for (ArticleCategory articleCategory : articleCategoryList)
//            {
            articleCategoryList.setId(id);
//                list.add(articleCategory);
//            }
//            if (list.size() > 0)
//            {
//                articleMapper.batchArticleCategory();
//            }
        }
    }
}
